import pytest
from selenium import webdriver
from selenium.webdriver.chrome.service import Service

from config import BASE_DIR
"""
减少测试用例的执行时间
使用无头模式，将不会打开浏览器界面
"""

@pytest.fixture()
def driver():
    # 无头模式
    options = webdriver.ChromeOptions()
    # 启用无头模式  禁用可视化界面
    options.add_argument('--headless')
    # 禁用GPU
    # options.add_argument('--disable-gpu')
    # 禁用沙盒
    options.add_argument('--no-sandbox')
    # 禁用开发者模式F12
    options.add_argument('--disable-dev-shm-usage')
    options.add_argument('--ignore-certificate-errors')
    # 将配置生效，添加到
    # driver = webdriver.Chrome(options=options)



    # 这个路径是在调用测试用例的相对路径，不是本文件的相对路径
    # driver = webdriver.Chrome(service=Service(r'../driver/chromedriver.exe'))

    # 使用绝对路径
    chrom_path = BASE_DIR+r'\driver\chromedriver.exe'
    driver = webdriver.Chrome(service=Service(chrom_path),options=options)

    # 使用selenium自带驱动
    # driver = webdriver.Chrome()
    driver.maximize_window()
    # yield与return功能类似但yield比return更强大
    yield driver
    driver.quit()

